<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // % 取余数
       // console.log(7%3);//1

        // NaN (not a number)  不是数字
        // 1. NaN 与任何内容进行计算的结果都是 NaN
        // 2. NaN 不等于任何内容，包含自身
        // console.log(NaN+10);
        // console.log(NaN==NaN);//false

        // isNaN()  判断某个内容是不是数字   是(false)  不是(true)
        // 如果遇到字符串先转化为数字（底层 Number()），再进行判断
        // 只有纯数字(字符串)才转化为数字,带有任何符号和字母的都不行，除了 + -

        // console.log(isNaN(10));//false
        // console.log(isNaN(1));//false
        // console.log(isNaN(NaN));//true

        // console.log(isNaN('AA'));//true
        // console.log(isNaN('12.5'));//false '12.5'---12.5
        // console.log(isNaN('12.5px'));//true  '12.5px'--NaN
        // console.log(isNaN('+12.5'));//flase  '+12.5'--12.5
        // console.log(isNaN('-12.5'));//flase  '-12.5'-- -12.5

        //如果遇到引用类型 toString() ----Number()
        // console.log(isNaN([]));//[]--""---0  false
        // console.log(isNaN([10]));//[10]--"10"--10  false
        // console.log(isNaN([10, 20]));//[10, 20]---"10,20"--NaN  true
        // console.log(isNaN({}));//{}--'[object Object]'---NaN  true
        // console.log(isNaN({num:18}));//{num:18}--'[object Object]'---NaN  true
        
        //如果遇到原始值转化为数字（底层 Number()）
        // console.log(isNaN(null));//null--0 false
        // console.log(isNaN(undefined));//undefined--NaN  true
        // console.log(isNaN(Symbol(1)));//报错  Symbol无法转换为Number类型，进行判断，报错

        //console.log(isNaN(10n));//报错  Symbol无法转换为Number类型，进行判断，报错
        console.log(isNaN(true));//true--1   false
        console.log(isNaN(false));//false--0  false
    </script>
</body>
</html>